# %%
from ChartReport.Report import Report
import matplotlib.pyplot as plt
import pandas as pd

import altair as alt


df = pd.DataFrame({
    'name': 'a b c'.split(),
    'value': [1, 2, 3]
})

df1 = df.copy()

chart1 = alt.Chart(df,description='bar-x').mark_bar().encode(
    alt.X('name'),
    alt.Y('value'),
    
)

chart2 = alt.Chart(df,description='bar-y').mark_bar().encode(
    alt.X('name'),
    alt.Y('value'),
)


df_line = pd.DataFrame({
    'date': pd.date_range('now',periods=3,freq='D'),
    'value': [1, 2, 3]
})


line = alt.Chart(df_line).mark_line().encode(
    alt.X('date'),
    alt.Y('value'),
    
)



chart = chart1 | chart2

# api 设计
df_mouse_event =  interactive(df).set_hover() # df的鼠标划过事件
chart_event = interactive(chart)
                .bind(df_mouse_event,'event.css') # 绑定 df的事件，触发时从 css 文件中选择类名
                .condition('name') # 当 表格 行的 name 列的值与 图表中的 name 字段值相等时
                .when_true('alt_1') # 相等的图形的样式 类名
                .when_else('alt_2') # 不相等的图形的样式 类名


(
    Report()
    .add_div(chart)
    .add_div(df)
    .to_html('result.html')
)

# %%
type(chart)
alt.HConcatChart